package com.group10.controller;

import com.group10.entity.Blog;
import com.group10.entity.Result;
import com.group10.service.impl.BlogServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/blog")
public class BlogController {

    @Autowired
    private BlogServiceImpl blogService;

    /**
     * 获取所有blog
     * @return 返回一个Result对象，其中封装了所有的Blog列表
     */
    @GetMapping("/getAllBlog")
    public Result<?> getAllBlog(){
        return blogService.getAllBlog();
    }

    /**
     * 获取用户发布的blog
     * @param token 用户携带的token
     * @return 返回一个Result对象，其中封装了用户所有的Blog列表
     */
    @GetMapping("/getUserAllBlog")
    public Result<?> getUserAllBlog(@RequestHeader(name = "Authorization") String token){
        return blogService.getUserAllBlog(token);
    }

    /**
     * 发布blog
     * @param blog 用户发布的Blog
     * @return 返回一个Result对象，其中封装了新建Blog的结果
     */
    @PostMapping("/newBlog")
    public Result<?> newBlog(@RequestHeader(name = "Authorization") String token,Blog blog){
        return blogService.newBlog(token,blog);
    }

    /**
     * 删除blog
     * @param id Blog的ID，通过id删除Blog
     * @return 返回一个Result对象，其中封装了Blog删除的结果
     */
    @PutMapping("/deleteBlog")
    public Result<?> deleteBlog(int id){
        return blogService.deleteBlog(id);
    }
}
